iT邦幫忙

2021 iThome 鐵人賽

DAY 3
1
自我挑戰組

C# 雞礎觀念系列 第 3

[Day3]C# 雞礎觀念- 核心的數據成員~變數(一)

  • 分享至 

  • xImage
  •  

變數的世界/images/emoticon/emoticon06.gif

在C#世界中,基本上大家都希望有自己的歸屬感,所以他們都會被賦予一個的種族,
這也是所謂的強型別語言擁有的特性。
我們待會會跟各位介紹常見的種族,正是所謂的變數型別

我們在這世界無論或大或小都會有一個棲身之處,也許是皇宮或者是天橋下,總有個地方讓我們睡覺,
變數也是一樣的,它們在電腦世界中無論如何最終會有一個記憶體內存供他們容身。

數字類型的變數/images/emoticon/emoticon49.gif

  • 數字類型的變數是變數中人口最多的種族了,當然他們底下也細分成很多種族群

整數變數

  • 整數這東西是人類在歷史上最早掌握的數字,我們來套用一個古人的名言:

“1”是數的第一原則,萬物之母,也是智慧;“2”是對立和否定的原則,是意見;“3”是萬物的形體和形式;“4”是正義,是宇宙創造者的象徵;“5”是奇數和偶數,雄性與雌性和結合,也是婚姻;“6”是神的生命,是靈魂;“7”是機會;“8 ”是和諧,也是愛情和友誼;“9”是理性和強大;“10”包容了一切數目,是完滿和美好。
--畢達哥拉斯

  • 沒錯這就是標榜"萬物皆數"的畢達哥拉斯,他讓我們了解到生活上處處都存在著整數的運算
  • 接下來我們就心動不如馬上行動,來看看C#世界中的整數吧!
  1. 首先我們剛剛有說過,當一個變數出生前,我們就得先給他們個種族(類型)
  2. 那麼整數的種族標誌就是 int
  3. 當一個變數被賦予int之後,他就擁有一個家族使命,並馬上獲得他的領土(內存中4個Byte的空間)
  4. 但因為剛剛才出生,所以什麼都不會,就如同一張白紙一樣(默認預設值0)
  • 明白整數的身世之謎後我們來他玩玩吧!
  • 題目: 阿嬤到菜市場買菜,買了一根50元的蘿蔔跟70元的豬肉,請問阿嬤在未殺價的情況下給了攤主多少錢呢?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //首先要來一個型態為整數的蘿蔔變數
            int radish;
            //再來個型態為整數的豬肉變數
            int pork;
            //此時阿嬤問攤主蘿蔔多少錢,攤主告訴阿嬤50元
            //我們就可以讓蘿蔔變成50元
            radish = 50;
            //這時阿嬤又問攤主豬肉多少錢,攤主告訴阿嬤70元
            //我們就可以就來讓豬肉變成70元
            pork = 70;
            //阿嬤為了計算方便就先把價錢寫下來了
            Console.WriteLine("蘿蔔 " + radish + "元 ,豬肉 " + pork + "元");
            //這時候店家拿出計算機按給阿嬤看
            int computer = radish + pork;
            //阿嬤看按計算機上面寫的價錢,就從錢包拿出錢給攤販開心回家了
            Console.WriteLine("計算機畫面 => " + radish + " + " + pork + " = " + computer);
            Console.ReadKey();
        }
       
    }
 }
執行:我們可以按快捷鍵(Ctrl+F5)或是點選功能列的開始執行程式

蘿蔔 50元 ,豬肉 70元
計算機畫面 => 50 + 70 = 120

知識小學堂/images/emoticon/emoticon35.gif

  • 這就是所謂的整數變數
    https://ithelp.ithome.com.tw/upload/images/20210903/20097001z12TEGntl5.png
  • 這邊是整數的家,在內存中佔了4Byte,也就是32bit
    https://ithelp.ithome.com.tw/upload/images/20210903/20097001Gg3VvBp5pp.png

其他整數類型

  • short型(短整數) : 這種類型只會分配到2個byte,他值範圍為-32768~32768
  • long型(長整數) : 他擁有8個byte,值的範圍則是-9223372036854775808~9223372036854775807
    如果我們在short與long前面看到一個英文字母u,他則是無符號的型別ushort,ulong,他們這種族的世界中,是沒有負面情緒的,是個十分樂觀的種族,所以他們只有正數,沒有負數

現在我們來歸納一下整數類型吧/images/emoticon/emoticon09.gif

C#類型 | 值的範圍| 中文名稱
------------- | -------------
byte | 0 ~ 255|字節
short | -32768 ~ 32767|短整數
ushort | 0 ~ 65535|無號短整數
int| -2147483648 ~ 2147483647|整數
uint| 0 ~ 4294967295|無號整數
long| -9223372036854775808~9223372036854775807|長整數
ulong| 0 ~ 18446744073709551615|無號長整數
注意:如果使用超出這些範圍外,我們將它稱為溢位,程式會出錯, 所以我們使用前應該要先想好會用到多大的數值,別宣告太小導致溢位, 也別宣告太大而佔用內存空間

浮點數執行別變數/images/emoticon/emoticon17.gif

  • 什麼是浮點數呢?浮點數就是所謂的小數
  • 有時候整數的運算,已經無法滿足我們的需求,所以C#中也有小數的運算

小數最常見有三種類型:

C#類型 | 值的範圍| 準確率
------------- | -------------
float | ±1.5 x 10−45 ~ ±3.4 x 1038|~6-9 位數
double |±5.0 × 10−324 ~ ±1.7 × 10308|~15-17 位數
decimal | ±1.0 x 10-28 ~ ±7.9228 x 1028|28-29 位數

我們馬上來練習看看吧

  • 題目:請分別用float與double來印出?。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //使用float型別來宣告變數
            //記得數字最後要加上後置詞f
            float pi_f = 3.1415926535879f;

            //使用double來宣告變數
            double pi_d = 3.1415926535879;

            Console.WriteLine("pi_f = " + pi_f);
            Console.WriteLine("pi_d = " + pi_d);
            Console.ReadKey();
        }
       
    }
 }

結果:

pi_f = 3.141593
pi_d = 3.1415926535879

  • 由此我們就可以看得出,他們型別之間的差異,這樣在使用之前,我們可以優先考慮,應該要用哪個型別

歡樂的時光總是過得特別的快,以上就是我們今天的變數,請大家請期待明天的字串變數


上一篇
[Day2]C# 雞礎觀念- 與C#開發千里來相見
下一篇
[Day4]C# 雞礎觀念- 核心的數據成員~變數(二)
系列文
C# 雞礎觀念32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
C#.NET
iT邦新手 4 級 ‧ 2021-09-24 07:33:28

畢達哥拉斯、沒有負面情緒 :p 愛了愛了!

我要留言

立即登入留言